#ifndef RECEPTION_HPP_
# define RECEPTION_HPP_

# include <vector>
# include "Kitchen.hpp"
# include "Communication/WalkieTalkie.hpp"
# include "Utils/macros.hpp"

namespace pizzeria {

/*! Reception of the pizzeria, takes orders and give them to the kitchens */
class Reception {
public:
  /*! Default constructor */
  Reception();
  /*! Destructor */
  ~Reception();

  /*! Parse the string with \a PizzaOrderParser class and send the order to
   * the kitchens.
   * \param order : the order to parse
   * \throw std::invalid_argument if the string have a bad format
   */
  void TakeNewOrder(const std::string &order);

private:
  /*! Disallow copy constructor and assignment operator */
  DISALLOW_COPY_AND_ASSIGN(Reception);

  std::vector<communication::WalkieTalkie *> mWalkieList; /*! Walkie Talkie */
};

} /* !namespace pizzeria */
#endif /* !RECEPTION_HPP_ */
